The present invention is directed to a print driver, and more specifically to an adaptive driver for choosing hybrid raster and PDL format output.
When a user chooses to print, copy, fax, file, or otherwise image (hereinafter referred to as “image”) a document 100 (that can include all input sources that would require rasterization before printing, examples of which include electronic documents, electronic image files), a conversion of the document or image data (hereinafter referred to as “document data 102”) must be performed at some point on a group of connected devices (networked or local) such that the document data 102 eventually is converted into a raster image 104a, 104b. Connected devices might include a single host 110 and a single imager 112. More complicated networks include multiple hosts 100 and/or multiple imagers 112. For purposes of the present invention, a host 110 may be any device from which imaging may be requested, including, but not limited to a computer, a workstation, a PDA, server, another imager, and other document data sources known or yet to be discovered. For purposes of the present invention, an imager 112 may be any device at which imaging may be implemented, including, but not limited to an MFP (Multi-Function Peripheral/Printer/Product), a printer, a facsimile machine, a copier, a scanner, a filing device, a document conversion device, or any imaging device known or yet to be discovered.
The conversion of document data 102 into a raster image (shown as raster data 104a, raster page 104b, and/or raster graphics 104c) may be a multi-stage process. A first stage may be, for example, to convert the document data 102 into device independent data that is generally represented as graphical instructions (e.g. graphical display interface (GDI) format in Microsoft's Windows®). A second stage may be, for example, to convert the device independent data to a page description language (PDL) (e.g. Postscript® (Adobe Systems, Inc.), printer control language (PCL) (Hewlett-Packard), portable document format (PDF) (Adobe Systems, Inc.—Acrobat®), PCL-6 or PCL-XL, IBM IPDS, and other PDLs known or yet to be discovered.) The device independent data and/or page description language (PDL) may then be converted into a raster image 104a, 104b using a process generally referred to as rasterization. A raster image 104a, 104b is generally in a format that is compatible with the marking engine 114 of the imager 112. Rasterization is a resource intensive process that tends to slow down the connected device on which it is being performed. The rasterization process may include, for example, converting the device independent data into a bitmap, possibly resizing/rotating the bitmap, color conversion to the imager's color space, image enhancements, and finally half-toning. Rasterization is also known as raster image processing (RIP).
In one known method the document data 102 is fully rasterized on the host 110 (FIG. 1). Another known method fully rasterizes the document data 102 on the imager 112 (FIG. 2). Other known methods divide the rasterization process so that some of the rasterization process is performed on the host 110 and the remainder of the rasterization process is performed on the imager 112 (FIGS. 3-5).
FIG. 1 shows one method in which the document data 102 is fully rasterized on the host 110. In this method, the document data 102 is first converted to a device independent format in the host side print subsystem 116. The device independent format is then converted by a host side RIP imager driver 120 (e.g. a raster printer driver) into raster data 104a that is compatible with the marking engine 114 of the targeted imager 112. The HP DeskJet 870 series printers are examples of devices in which the document data 102 is fully rasterized on the host 110.
One drawback of fully rasterizing on the host 110, depending on the resource capabilities/availability, is that the host 110 may become bogged down, depriving its ability to process other operations in parallel and/or causing delays in starting subsequent operations. One benefit of fully rasterizing on the host 110 is that the imager 112 does not require any image processing capabilities, since the data is already in a marking engine 114 ready format (raster data 104a), and the marking engine 114 can be driven at its full marking engine speed (i.e. rated speed).
FIG. 2 shows another method in which the document data 102 is fully rasterized on the imager 112 by a RIP processor 122. Typically, the document data 102 is first converted to a device independent format on the host 110 by the host side print subsystem 116. The host side print subsystem 116 may then convert the device independent format into page description language (PDL) data 124 that is supported by the imager 112. Converting device independent format into page description language (PDL) is generally a much faster operation than rasterization, since the printing instructions are generally simply converted from one format to another, with little to no image processing occurring. The PDL data 124 is then transferred from the host 110 to the imager 112. The RIP processor 122 then converts the PDL data 124 into raster data 104a that is compatible with the marking engine 114. The Sharp AR-M450 is an example of an imager 112 where the document data 102 is fully rasterized on the imager 112.
One advantage to performing rasterization on the imager 112 is that the host 110 requires substantially less computing resources, allowing the host 110 to have a substantially greater ability to process other operations in parallel and start subsequent operations sooner. One disadvantage is that the imager 112 must now have the image processing capabilities and computing resources to convert the PDL data 124 into raster data 104a. Generally, because of the computing expensive nature of the rasterization operation, an imager 112 generally cannot rasterize data at a speed sufficient enough to drive the imager 112 at its full marking speed.
FIG. 3 shows a prior art embodiment in which some of the rasterization process is performed on the RIP imager driver 130 of the host 110 and the remainder of the rasterization process is performed on the RIP processor 132 of the imager 112. In this method the document data 102 is partially rasterized on the RIP imager driver 130 of the host 110 into a device independent bitmap format (shown as raw raster (TIFF) 134). The device independent bitmap 134 is then processed by the RIP processor 132 of the imager 112 into fully rasterized raster data 104a by performing the remaining processing steps of resizing/rotating the bitmap, color conversion to the imager's color space, image enhancements, and half-toning. The Sharp AR-M277 is an example of an imager 112 where the document data 102 is partially rasterized as a device independent bitmap 134 on the host 110 and the remaining rasterization of the device independent bitmap 134 occurs on the imager 112.
One advantage of this method is that the computing resources required for rasterization are split across both the host 110 and imager 112. Therefore, an arbitrary host 110 is more likely to produce the device independent bitmap 134 without being bogged down, or causing delays in subsequent operations, and the imager 112 is more likely to image at marking engine speed. Depending on the complexity of the device independent bitmap 134, at a certain threshold of complexity, the computing resources required will either bog down the host 110 or cause the imager 112 to image below marking engine speed, or both.
FIG. 4 shows another method that is disclosed in U.S. patent application Ser. No. 10/261,885 (Publication No. 2004/0061892 A1), entitled Load Balancing Distributed Raster Image Processing, the disclosure of which is incorporated herein by reference. In this method the rasterization of pages is split between the RIP imager driver 140 of the host 110 and the RIP processor 142 of the imager 112. That is, some pages are fully rasterized on the RIP imager driver 140 of the host 110, while other pages are fully rasterized on the RIP processor 142 of the imager 112. In this method, the host 110 uses two rendering methods, one that generates fully rasterized pages (raster pages 104b) and another that generates unrasterized PDL pages (144). The rasterized and PDL pages are then interleaved 104b, 144. As shown in decision block 146, the imager 112 side makes a determination as to whether a particular page has been rasterized. The imager 112 side then processes each page according to whether it is a raster page 104b or a PDL page 144. If the page has been rasterized, it goes straight to the marking engine 114. If the page has not been fully rasterized, the PDL page 144 goes through the PDL interpreter (a subcomponent of the RIP processor 142), where it is rasterized and then passed to the marking engine 114.
Either a static or a dynamic decision making process may be used to determine which pages are rasterized and which pages are left as PDL pages. In the static case, a predefined algorithm is used, such as round robin. In the dynamic case, a communication link exists between the imager 112 and host 110. The imager 112 self monitors its load and communicates back to the host 110 when to send pages as rasterized or PDL pages.
FIG. 5 shows another method in which some types of graphical instructions (e.g. font glyphs) are fully rasterized on the RIP imager driver 150 of the host 110, while the remainder of the instructions are fully rasterized on the RIP imager driver 152 of the imager 112. For example, the Sharp AR-507 printer driver has the option to generate text either as vector data (i.e. non-raster) or as rasterized font glyphs. The remaining graphical instructions (e.g. draw line, fill, etc.) are not rasterized. In this method, when the RIP imager driver 150 processes a text instruction, the RIP imager driver 150 obtains the font glyphs for the text, fully rasterizes the font glyphs as raster graphics 104c, and downloads them embedded with the PDL 154, while the print job as a whole is output in a PDL format. The imager's PDL interpreter (a subcomponent of RIP imager driver 152) is spoofed by passing the raster font glyphs as PDL bitmap data. When the PDL interpreter processes the PDL bitmap for the font glyph it performs no rasterization since the font glyphs were half-toned by the driver and appear as bi-tonal data to the PDL interpreter (e.g. the Sharp AR-507 printer does not perform rasterization on bitmaps that are bi-tonal). In FIG. 5 this is shown as the PDL 154 with embedded raster graphics 104c being parsed 154 such that the PDL 154 is sent to the RIP imager driver 152 of the imager 112 for rasterizing. The raster graphics 104c, however, bypass processing of the RIP imager driver 152. The raster data 104a (the rasterized PDL 154) and the raster graphics 104c are then assembled on a page-by-page basis 158 into raster pages 104b and sent to the marking engine 114.